//https://juejin.cn/post/6844903895546724366
// 简单工厂
//简单工厂只能作用于创建的对象数量较少，对象的创建逻辑不复杂时使用。
// 适用于创建对象比较少的时候，当角色多的时候，代码会变成特别冗余
class User {
  constructor(name, age) {
    this.name = name
    this.age = age
  }
  getInstance(role) {
    switch (role) {
      case 'admin':
        return new User('张三', 12)
        break;
      case 'user':
        return new User('lisi', 14)
        break;
      default:
        break;
    }
  }
}

const user = new User()
console.log(user.getInstance('admin'))

// 工厂方法
// 将以上核心类变成抽象类，创建对象的主要方法挪到子类中